The present invention relates to diagnostic methods for entities associated with software components, and in particular, it relates to independent symptom checking and event recording to provide a decoupled diagnosis arrangement.
In conventional large multi-component software applications, one component may wish to perform an action based upon what has happened to an entity associated with another component of the system by diagnosing a particular state of the entity. For example, a software component supporting a redundant array of independent disks (RAID) may wish to know when one type of disk making up one of a set of disk arrays has been subject to a certain number of recording-medium errors in a particular time period. Such a circumstance may result in a diagnosis of a disk failure and can be remedied by the removal of a disk from the array.
Typical approaches invoke a framework in which software components communicate directly with each other to obtain information relating to the status of associated entities, such as by polling. This communication can produce a burdensome processing overhead for the components, potentially reducing performance, and furthermore requires a tight coupling between the components, otherwise the process may fail. Tight coupling is disadvantageous in software design and development because it complicates software maintenance and reduces the potential for code reuse as software components are written specifically for either direct or indirect coupling between components.